COVID-19 ဗိုင်းရပ်၏အမည်မှာ Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2) ဖြစ်ပြီးထိုဗိုင်းရပ်ကြောင့်ဖြစ်သောရောဂါကို coronavirus disease(COVID-19) ဟုခေါ်ပါသည်။ Corona ဟူသောစကားလုံးသည် Latin ဘာသာဖြင့်ရေးသားထားခြင်းဖြစ်ပြီး English လို Crown ဟုအဓိပ္ပါယ်ရပါသည်။ ဗိုင်းရပ်၏ပုံသဏ္ဍပေါ်အခြေခံ၍ရေးသားခြင်းဖြစ်ပါသည်။ ဗိုင်းရပ်၏အမည်ပေးခြင်းကို International Committee on Taxonomy of Viruses (ICTV) မှပြုလုပ်ပြီး ရောဂါ၏အမည်ပေးခြင်းကို WHO မှပြုလုပ်ခြင်းဖြစ်ပါသည်။

WHO'S NAMING-and-the-virus-that-causes-it)

WHO-Coronavirus

MOHS

COVID-19 ရောဂါနှင့်ပတ်သက်၍လေ့လာတွေ့ရှိမှု့အသစ်

COVID-19 ရောဂါကြောင့်ဖြစ်ပေါ်လာသောရောဂါလက္ခဏာအသစ်(COVID toes)

အထက်ပါ website များမှတဆင့်သတင်းအချက်အလက်များရယူနိင်ပါသည်။


In [1]:
%store -r __importing_Lib
In [2]:
__importing_Lib
matplotlib inline backend and ggplot style are used.
Mplotlib version : 3.1.3
Numpy version	 : 1.18.1
Pandas version	 : 1.0.1
Seaborn version	 : 0.10.0
Folium version	 : 0.10.1
Other imported is: Waffle      
		 : datetime      
		 : base64      
		 : Json
In [3]:
from folium import plugins
from graphviz import Digraph
import matplotlib.gridspec as gridspec
import requests
import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files/Graphviz2.38/bin/'
mpl.rcParams['xtick.minor.size'] = 0
mpl.rcParams['xtick.minor.width'] = 0
mpl.rcParams['ytick.minor.size'] = 0
mpl.rcParams['ytick.minor.width'] = 0
plt.rcParams['font.weight'] = 'bold'
plt.rcParams['axes.labelweight'] = 'bold'
plt.rcParams['axes.titleweight'] = 'bold'


In [4]:
covid_df = pd.read_excel('covid/COVID-19-2020-06-21.xlsx', parse_dates=['dateRep'])
covid_df.rename(columns={'countryterritoryCode': 'Country_Code'}, inplace=True)
print(covid_df.shape)
cc_dict = {
            'Anguilla': 'AIA', 'Bonaire, Saint Eustatius and Saba': 'BES',
            'Czechia': 'CZE', 'Falkland_Islands_(Malvinas)': 'FLK'
          }
covid_df.query('countriesAndTerritories!=["Cases_on_an_international_conveyance_Japan"]', inplace=True)
covid_df.rename(columns={'countriesAndTerritories': 'Country_Name'}, inplace=True)
for c_name, c_code in cc_dict.items():
    covid_df.loc[covid_df.Country_Name==c_name, 'Country_Code'] = c_code
print(covid_df.shape)
start_date = covid_df.dateRep.min().strftime('%d-%m-%Y')
last_date = covid_df.dateRep.max().strftime('%d-%m-%Y')
print(f'start_date: {start_date}', f'last_date : {last_date}', sep='\n')
total_death = covid_df.deaths.sum()
total_cases = covid_df.cases.sum()
overall_death_rate = total_death / total_cases * 100
print(f'total_death: {total_death:7,.0f}\ntotal_cases: {total_cases:7,}\noverall_death_rate: {overall_death_rate:.2f}%')
covid_df.head()
(24550, 11)
(24550, 11)
start_date: 31-12-2019
last_date : 21-06-2020
total_death: 466,189
total_cases: 8,795,672
overall_death_rate: 5.30%
Out[4]:
dateRep day month year cases deaths Country_Name geoId Country_Code popData2019 continentExp
0 2020-06-21 21 6 2020 546 21.0 Afghanistan AF AFG 38041757 Asia
1 2020-06-20 20 6 2020 346 2.0 Afghanistan AF AFG 38041757 Asia
2 2020-06-19 19 6 2020 658 42.0 Afghanistan AF AFG 38041757 Asia
3 2020-06-18 18 6 2020 564 13.0 Afghanistan AF AFG 38041757 Asia
4 2020-06-17 17 6 2020 783 13.0 Afghanistan AF AFG 38041757 Asia


In [5]:
region_df = pd.read_csv('life_expectancy/Metadata_Country.csv', usecols=[0, 1, 2])
region_df.columns = 'Country_Code', 'Region', 'IncomeGroup'
region_df.dropna(subset=['IncomeGroup'], inplace=True)
region_df.head()
Out[5]:
Country_Code Region IncomeGroup
0 ABW Latin America & Caribbean High income
1 AFG South Asia Low income
2 AGO Sub-Saharan Africa Lower middle income
3 ALB Europe & Central Asia Upper middle income
4 AND Europe & Central Asia High income


In [6]:
region_dict = {'Anguilla': ['Latin America & Caribbean', 'High income'],
               'Bonaire, Saint Eustatius and Saba': ['Latin America & Caribbean', 'High income'],
               'Falkland_Islands_(Malvinas)': ['Latin America & Caribbean', 'High income'],
               'Guernsey': ['Europe & Central Asia', 'High income'],
               'Holy_See': ['Europe & Central Asia', 'High income'],
               'Jersey': ['Europe & Central Asia', 'High income'],
               'Montserrat': ['Latin America & Caribbean', 'Upper middle income'],
               'Taiwan': ['East Asia & Pacific', 'High income']
               }
In [7]:
merge_df = covid_df.merge(region_df, on='Country_Code', how='left')
for cname, (reg, level) in region_dict.items():
    merge_df.loc[merge_df.Country_Name==cname, ['Region', 'IncomeGroup']] = reg, level
col_to_keep = ['dateRep', 'cases', 'deaths', 'Country_Name', 'Region', 'IncomeGroup']
merge_df = merge_df.loc[:, col_to_keep]
merge_df.head()
Out[7]:
dateRep cases deaths Country_Name Region IncomeGroup
0 2020-06-21 546 21.0 Afghanistan South Asia Low income
1 2020-06-20 346 2.0 Afghanistan South Asia Low income
2 2020-06-19 658 42.0 Afghanistan South Asia Low income
3 2020-06-18 564 13.0 Afghanistan South Asia Low income
4 2020-06-17 783 13.0 Afghanistan South Asia Low income


In [8]:
country_df = (merge_df.groupby(['Country_Name', 'IncomeGroup'])
                      .agg({'cases': 'sum', 'deaths': 'sum'})
                      .reset_index([0, 1]))
country_df.Country_Name.replace({'Democratic_Republic_of_the_Congo': 'Congo', 'United_States_of_America': 'USA'},
                                inplace=True)
country_df['c_proportion'] = country_df.cases / total_cases * 100
country_df['d_proportion'] = country_df.deaths / total_death * 100
country_df['death_rate'] = country_df.deaths / country_df.cases * 100
country_df.sort_values(['d_proportion', 'c_proportion', 'death_rate'], ascending=False).head()
Out[8]:
Country_Name IncomeGroup cases deaths c_proportion d_proportion death_rate
197 USA High income 2255119 119719.0 25.638962 25.680357 5.308766
27 Brazil Upper middle income 1067579 49976.0 12.137549 10.720116 4.681246
194 United_Kingdom High income 303110 42589.0 3.446127 9.135565 14.050675
97 Italy High income 238275 34610.0 2.709003 7.424028 14.525233
176 Spain High income 245938 30240.0 2.796125 6.486640 12.295782


In [9]:
case_name_lst = []
case_quan_lst = []
fig, ((ax1, ax2), (ax3, ax4))= plt.subplots(2, 2, figsize=(15, 10))
income_grp = country_df.groupby('IncomeGroup')
for g_name, grp in income_grp:
    temp = grp.sort_values('cases').tail()
    case_name_lst.append(temp.Country_Name.iloc[-1])
    case_quan_lst.append(temp.cases.iloc[-1])
    ax = (ax1 if g_name=='High income' else ax2 if g_name=='Upper middle income' else ax3
              if g_name=='Lower middle income' else ax4)
    ax.set_title(g_name, y=1.035)
    ax.barh(temp.Country_Name, temp.cases, color='steelblue')
    ax.set_xlabel('Number of patients')
    ax.xaxis.set_label_coords(0.5, -0.123)
    
    for label in ax.get_xticklabels()[1::2]:
        label.set_visible(False)
    ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:,.0f}'))
    
    for i, v in enumerate(temp.cases):
        if g_name=='High income':
            x = v-400_000 if v > 2_200_000 else v-298_000 if v > 300_000 else v+10_000
            
        elif g_name=='Upper middle income':
            x = v-190_000 if v > 1_000_000 else v-155_000
            
        elif g_name=='Lower middle income':
            x = v-60_000 if v > 100_000 else v-50_000 if v > 50_000 else v-45_000
        
        else:
            x = v-3_800 if v > 27_000 else v-3_100
            
        ax.text(x, i-0.1, f'{v:,}', color='white' if x < v else 'k')

plt.subplots_adjust(top=0.85, wspace=0.3, hspace=0.5)
fig.text(.5, 0.925, f'\nCOVID-19 Patients of all countries are analysed by IncomeGroup from {start_date} to {last_date}',
         fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_01', fontdict={'size':'x-large', 'ha':'center'});


In [10]:
cases_df = country_df.set_index('Country_Name').cases.sort_values().tail(10)
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.barh(cases_df.index, cases_df, color='steelblue')
for i, v in enumerate(cases_df):
    x = (v-220_000 if v > 1_000_000 else v-185_000 if v > 210_000 else v-180_000) 
    ax.text(x, i-0.1, f'{v:,}', color='white')

for label in ax.get_xticklabels()[1::2]:
    label.set_visible(False)
ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:,.0f}'))
ax.set_xlabel('Number of patients\nFig_02')
ax.set_title(f'\nCOVID_19 patients of top ten countries from {start_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.07)
In [11]:
top_cases = (country_df.sort_values('cases', ascending=False, ignore_index=True)
                        [['Country_Name', 'cases', 'c_proportion']].head(3))
fcn, scn, tcn = top_cases.Country_Name
fcq, scq, tcq = top_cases.cases
fcp, scp, tcp = top_cases.c_proportion
top_cases
Out[11]:
Country_Name cases c_proportion
0 USA 2255119 25.638962
1 Brazil 1067579 12.137549
2 Russia 576952 6.559499


In [12]:
death_name_lst = []
death_quan_lst = []
fig, ((ax1, ax2), (ax3, ax4))= plt.subplots(2, 2, figsize=(15, 10))
for g_name, grp in income_grp:
    temp = grp.sort_values('deaths').tail()
    death_name_lst.append(temp.Country_Name.iloc[-1])
    death_quan_lst.append(temp.deaths.iloc[-1])
    ax = (ax1 if g_name=='High income' else ax2
             if g_name=='Upper middle income' else ax3
             if g_name=='Lower middle income' else ax4)
    ax.set_title(g_name, y=1.035)
    ax.barh(temp.Country_Name, temp.deaths, color='steelblue')
    ax.set_xlabel('Number of patients')
    ax.xaxis.set_label_coords(0.5, -0.123)
    for i, v in enumerate(temp.deaths):
        if g_name=='High income':
            x = v-18_000 if v > 100_000 else v-15_500
            
        elif g_name=='Upper middle income':
            x = v-6_500 if v > 10_000 else v-5_500
            
        elif g_name=='Lower middle income':
            x = v-1_700 if v > 10_000 else v-1_400 if v > 2_000 else v-1_300

        else:
            x = v-45 if v > 100 else v-33
        ax.text(x, i-0.1, f'{v:,.0f}', color='white')

    for label in ax.get_xticklabels()[1::2]:
        label.set_visible(False)
    ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:,.0f}'))
plt.subplots_adjust(top=0.85, wspace=0.3, hspace=0.5)
fig.text(.5, 0.925, f'\nDeaths of COVID-19 Patients of all countries are analysed by IncomeGroup from \
{start_date} to {last_date}', fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_03', fontdict={'size':'x-large', 'ha':'center'});


In [13]:
deaths_df = country_df.set_index('Country_Name').deaths.sort_values().tail(10)
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.barh(deaths_df.index, deaths_df, color='steelblue')
for i, v in enumerate(deaths_df):
    x = v-10_000 if v > 100_000 else v-8_500 if v > 10_000 else v-7_000
    ax.text(x, i-0.1, f'{v:,.0f}', color='white')

for label in ax.get_xticklabels()[1::2]:
    label.set_visible(False)
ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:,.0f}'))
ax.set_xlabel('Number of deaths\nFig_04')
ax.set_title(f'\nTen highest death toll countries from {start_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.07)
In [14]:
top_deaths = (country_df.sort_values('deaths', ascending=False, ignore_index=True)
                         [['Country_Name', 'deaths', 'd_proportion']].head(3))
fdn, sdn, tdn = top_deaths.Country_Name
fdq, sdq, tdq = top_deaths.deaths
fdp, sdp, tdp = top_deaths.d_proportion
top_deaths
Out[14]:
Country_Name deaths d_proportion
0 USA 119719.0 25.680357
1 Brazil 49976.0 10.720116
2 United_Kingdom 42589.0 9.135565


In [15]:
drate_name_lst = []
drate_quan_lst = []
fig, ((ax1, ax2), (ax3, ax4))= plt.subplots(2, 2, figsize=(15, 10))
for g_name, grp in income_grp:
    temp = grp.sort_values('deaths', ascending=False).head(10).sort_values('death_rate').tail()
    drate_name_lst.append(temp.Country_Name.iloc[-1])
    drate_quan_lst.append(temp.death_rate.iloc[-1])
    ax = (ax1 if g_name=='High income' else ax2
             if g_name=='Upper middle income' else ax3
             if g_name=='Lower middle income' else ax4)
    ax.set_title(g_name, y=1.035)
    ax.barh(temp.Country_Name, temp.death_rate, color='steelblue')
    ax.set_xlabel('Death rate')
    ax.xaxis.set_label_coords(0.5, -0.123)
    for label in ax.get_xticklabels()[1::2]:
        label.set_visible(False)
    ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:.0f}%'))
    
    for i, v in enumerate(temp.death_rate):
        if g_name == 'High income':
            x = v-2.7
            
        elif g_name == 'Upper middle income':
            x = v-1.7 if v > 10 else v-1.47
        
        elif g_name == 'Low income':
            x = v-4 if v > 10 else v-3.4
            
        else:
            x = v-0.74
            
        ax.text(x, i-0.1, f'{v:.2f}%', color='white')

plt.subplots_adjust(top=0.85, wspace=0.33, hspace=0.5)
fig.text(.5, 0.925, f'\nDeath rate of COVID-19 Patients of top five countries for each IncomeGroup from \
{start_date} to {last_date}', fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_05', fontdict={'size':'x-large', 'ha':'center'});


In [16]:
death_rate_df = country_df.sort_values('deaths').tail(10)
death_rate_ten = death_rate_df.set_index('Country_Name').death_rate.sort_values().tail(10)
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.barh(death_rate_ten.index, death_rate_ten, color='steelblue')
for i, v in enumerate(death_rate_ten):
    x = v-1.48 if v > 11 else v-1.28
    ax.text(x, i-0.1, f'{v:.2f}%', color='white')

for label in ax.get_xticklabels()[1::2]:
    label.set_visible(False)
ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:.0f}%'))
ax.set_xlabel('Death rate\nFig_06')
ax.set_title(f'\nTen highest death rate countries from {start_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.07)
In [17]:
drate_df = death_rate_ten.tail(3)
trn, srn, frn = drate_df.index
tr, sr, fr = drate_df
print(f'USA: {death_rate_ten["USA"]}')
drate_df
USA: 5.308766410996492
Out[17]:
Country_Name
Italy      14.525233
Belgium    16.013212
France     18.509866
Name: death_rate, dtype: float64


In [18]:
color_dict = {'cases': 'orange', 'deaths': 'red', 'death_rate': 'steelblue'}
cumsum_df = covid_df.groupby('dateRep')[['cases', 'deaths']].sum().cumsum()
cumsum_df.query('deaths > 0', inplace=True)
cumsum_df['death_rate'] = cumsum_df.deaths / cumsum_df.cases * 100
cumsum_dmin = cumsum_df.index.min()
cumsum_dmax = cumsum_df.index.max()
cumsum_tdelta = pd.Timedelta('3 days')
temp_first_date = cumsum_dmin.strftime('%d-%m-%Y')
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.plot(cumsum_df.index, cumsum_df.death_rate, color='steelblue')
ax.xaxis.set_major_locator(plt.MaxNLocator(11))
ax.set_ylabel('Death rate')
ax.set_xlabel('Date\nFig_07')
ax.set_title(f'\nCOVID-19 Death rate for the whole world from {temp_first_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.18)
ax.set_xlim([cumsum_dmin-cumsum_tdelta, cumsum_dmax+cumsum_tdelta])
fig.autofmt_xdate(rotation=45);
In [19]:
max_day = cumsum_df.death_rate.idxmax()
min_day = cumsum_df.death_rate.idxmin()
max_drate = cumsum_df.loc[max_day].death_rate
min_drate = cumsum_df.loc[min_day].death_rate
print(min_day.strftime('%d-%m-%Y'), min_drate)
print(max_day.strftime('%d-%m-%Y'), max_drate)
pd.concat([cumsum_df.head(1), cumsum_df.tail(1)])
20-01-2020 1.2552301255230125
25-04-2020 7.2816256713912955
Out[19]:
cases deaths death_rate
dateRep
2020-01-11 59 1.0 1.694915
2020-06-21 8795672 466189.0 5.300209


In [20]:
period_df = covid_df.groupby('dateRep').agg({'cases': 'sum', 'deaths': 'sum'})
cases_max_day = period_df.cases.idxmax()
deaths_max_day = period_df.deaths.idxmax()
period_dmin = period_df.index.min()
period_dmax = period_df.index.max()
period_tdelta = pd.Timedelta('3 days')
print('Cases:', cases_max_day.strftime('%d-%m-%Y'), f'{period_df.loc[cases_max_day].cases:>8,}')
print('Deaths:', deaths_max_day.strftime('%d-%m-%Y'), f'{period_df.loc[deaths_max_day].deaths:>7,}')
period_df.info()
period_df.head()
Cases: 20-06-2020 177,272.0
Deaths: 16-04-2020 10,520.0
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 174 entries, 2019-12-31 to 2020-06-21
Data columns (total 2 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   cases   174 non-null    int64  
 1   deaths  174 non-null    float64
dtypes: float64(1), int64(1)
memory usage: 8.1 KB
Out[20]:
cases deaths
dateRep
2019-12-31 27 0.0
2020-01-01 0 0.0
2020-01-02 0 0.0
2020-01-03 17 0.0
2020-01-04 0 0.0
In [21]:
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.plot(period_df.cases, color='steelblue')
ax.plot(period_df.deaths, color='red')
ax.semilogy()
ax.xaxis.set_major_locator(plt.MaxNLocator(11))
ax.set_yticklabels([0.01, 0.1, '1', '10', '100', '1,000', '10,000', '100,000'])
ax.set_xlabel('Date\nFig_08')
ax.set_title(f'\nInfected and death of people around the world by COVID_19 from {start_date} to {last_date}', y=1.035)
ax.set_ylabel('Number of people')
ax.xaxis.set_label_coords(0.5, -0.18)
ax.set_xlim([period_dmin-period_tdelta, period_dmax+period_tdelta])
fig.autofmt_xdate(rotation=45);


Animated Bubble plot for COVID-19 for weekly


  1. low income \$1,025 or less
  2. lower middle income \$1,026 and \$3,995
  3. Upper middle income \$3,996 and \$12,375
  4. High income \$12,376 or more

Classifying countries by income(World Bank)

COVID-19 ရောဂါကူးစက်ခံရသူ၊ သေဆုံးသူများ၏အရေအတွက်နှင့်ပတ်သက်သော သတင်းအချက်အလက်ကို European Centre for Disease Prevention and Control (ECDC) မှရယူခဲ့ပါသည်။

31-12-2019 မှ 21-06-2020 အထိတစ်ကမ္ဘာလုံး၌ COVID-19 ရောဂါကူးစက်ခံရသူအရေအတွက်မှာ 8,795,672 ယောက်ဖြစ်ပြီး သေဆုံးသူအရေအတွက်မှာ 466,189 ယောက်ဖြစ်ပါသည်။ ပျမ်းမျှသေဆုံးနှုန်းမှာ 5.30% ဖြစ်ပါသည်။

ဝင်ငွေအုပ်စုအလိုက် COVID-19 ရောဂါကူးစက်ခံရမှု့ကိုလေ့လာကြည့်ရာ၌ မြင့်ဆုံးဝင်ငွေအုပ်စုတွင် အရေအတွက် 2,255,119 ယောက်ဖြင့် USA မှလည်းကောင်း ၊ အလယ်အလတ်အမြင့်ဝင်ငွေအုပ်စုတွင် အရေအတွက် 1,067,579 ယောက်ဖြင့် Brazil မှလည်းကောင်း ၊ အလယ်အလတ်အနိမ့်ဝင်ငွေအုပ်စုတွင် အရေအတွက် 410,461 ယောက်ဖြင့် India မှလည်းကောင်း၊ အနိမ့်ဆုံးဝင်ငွေအုပ်စုတွင် အရေအတွက် 28,424 ယောက်ဖြင့် Afghanistan တို့သည်ရောဂါကူးစက်ခံရမှု့အမြင့်ဆုံးတိုင်းပြည်များဖြစ်ပါသည်(Fig_01)။

တစ်ကမ္ဘာလုံးအနေဖြင့်လေ့လာကြည့်လျှင် ရောဂါကူးစက်ခံရသူအရေအတွက်အများဆုံးတိုင်းပြည်မှာ USA ဖြစ်ပြီး အရေအတွက်အားဖြင့် 2,255,119 (25.64%) ယောက်ဖြစ်ပါသည်။ ဒုတိယနှင့်တတိယရောဂါကူးစက်ခံရသူအရေအတွက်အများဆုံးတိုင်းပြည်များမှာ Brazil နှင့် Russia တို့ဖြစ်ပြီး အရေအတွက်အားဖြင့် 1,067,579 (12.14%) နှင့် 576,952 (6.56%) ယောက်တို့ဖြစ်ပါသည်(Fig_02)။

COVID-19 ရောဂါကြောင့်သေဆုံးမှု့အား ဝင်ငွေအုပ်စုအလိုက်လေ့လာကြည့်ရာ၌ မြင့်ဆုံးဝင်ငွေအုပ်စုတွင် အရေအတွက် 119,719 ယောက်ဖြင့် USA မှလည်းကောင်း ၊ အလယ်အလတ်အမြင့်ဝင်ငွေအုပ်စုတွင် အရေအတွက် 49,976 ယောက်ဖြင့် Brazil မှလည်းကောင်း ၊ အလယ်အလတ်အနိမ့်ဝင်ငွေအုပ်စုတွင် အရေအတွက် 13,254 ယောက်ဖြင့် India မှလည်းကောင်း၊ အနိမ့်ဆုံးဝင်ငွေအုပ်စုတွင် အရေအတွက် 569 ယောက်ဖြင့် Afghanistan တို့သည်သေဆုံးမှု့အမြင့်ဆုံးတိုင်းပြည်များဖြစ်ပါသည်(Fig_03)။

COVID-19 ရောဂါကြောင့်သေဆုံးသူအရေအတွက်အား တစ်ကမ္ဘာလုံးအနေဖြင့်လေ့လာကြည့်တွင် သေဆုံးမှု့အများဆုံးတိုင်းပြည်မှာ USA ဖြစ်ပြီး အရေအတွက်အားဖြင့် 119,719 (25.68%) ယောက်ဖြစ်ပါသည်။ ဒုတိယနှင့်တတိယသေဆုံးသူအရေအတွက်အများဆုံးတိုင်းပြည်များမှာ Brazil နှင့် United_Kingdom တို့ဖြစ်ပြီး အရေအတွက်အားဖြင့် 49,976 (10.72%) နှင့် 42,589 (9.14%) ယောက်တို့ဖြစ်ကြပါသည်(Fig_04)။

ဝင်ငွေအုပ်စုအလိုက် COVID-19 ရောဂါကြောင့်သေဆုံးသူအရေအတွက်အများဆုံးတိုင်းပြည် 10 ခုအားရွှေးထုတ်ပြီးနောက် နိင်ငံအလိုက်သေဆုံးနှုန်းအားလေ့လာကြည့်ရာ၌ မြင့်ဆုံးဝင်ငွေအုပ်စုတွင် 18.51% ဖြင့် France မှလည်းကောင်း ၊ အလယ်အလတ်အမြင့်ဝင်ငွေအုပ်စုတွင် 11.86% ဖြင့် Mexico မှလည်းကောင်း ၊ အလယ်အလတ်အနိမ့်ဝင်ငွေအုပ်စုတွင် 6.07% ဖြင့် Sudan မှလည်းကောင်း၊ အနိမ့်ဆုံးဝင်ငွေအုပ်စုတွင် 27.52% ဖြင့် Yemen တို့သည်သေဆုံးနှုန်းအမြင့်ဆုံးတိုင်းပြည်များဖြစ်ပါသည်(Fig_05)။

COVID-19 ရောဂါကြောင့်သေဆုံးသူအရေအတွက်အများဆုံးတိုင်းပြည် 10 ခုအားရွှေးထုတ်ပြီးနောက် ထိုတိုင်းပြည်တစ်ခုချင်းအလိုက်သေဆုံးနှုန်းအားတွက်ထုတ်ကြည့်ရာတွင် France သည်သေဆုံးနှုန်းအမြင့်ဆုံးတိုင်းပြည်ဖြစ်ပြီး 18.51% ဖြစ်ပါသည်။ ထို့နောက် 16.01% ဖြင့် Belgium သည်လည်းကောင်း၊ 14.53% ဖြင့် Italy တို့သည်ဒုတိယနှင့်တတိယသေဆုံးနှုန်းအမြင့်ဆုံးတိုင်းပြည်များဖြစ်ကြောင်းလေ့လာတွေ့ရှိရသည်။ COVID-19 ရောဂါကြောင့်သေဆုံးသူအရေအတွက်အများဆုံးတိုင်းပြည်ဖြစ်သော USA ၏သေဆုံးနှုန်းမှာ 5.31% ဖြစ်ပါသည်(Fig_06)။

တစ်ကမ္ဘာလုံး၌ COVID-19 ရောဂါကြောင့်အနည်းဆုံးပျမ်းမျှသေဆုံးနှုန်းမှာ 20-01-2020 တွင် 1.26% ဖြစ်ပြီးအမြင့်သေဆုံးနှုန်းမှာ 25-04-2020 တွင် 7.28% ကြောင်း တွေ့ရှိ ရပါသည်(Fig_07)။

တစ်ကမ္ဘာလုံး၌ COVID-19 ရောဂါကူးဆက်ခံရသူနှင့်သေဆုံးသူအရေအတွက်အား နေ့အလိုက်လေ့လာကြည့်ရာတွင် 20-06-2020 သည်ရောဂါကူးဆက်ခံမှု့အများဆုံးနေ့ဖြစ်ပြီး အရေအတွက်အားဖြင့် 177,272 ယောက်ဖြစ်ပါသည်။ 16-04-2020 သည်သေဆုံးသူအရေအတွက်အများဆုံးနေ့ဖြစ်ခဲ့ပြီး 10,520 ယောက်သေဆုံးကြောင်း တွေ့ရှိရပါသည်(Fig_08)။


In [22]:
myan_df = pd.read_excel('covid\covid_19.xlsx', index_col='Case_no').drop('Is_Checked', axis=1)
myan_df.Adult.replace({0:'Minor', 1:'Majority'}, inplace=True)
myan_df.Hospital.replace({'South Okkalapa Women & Children Hospital':
                          'South Okkalapa Specialist Hospital'}, inplace=True)
for name in [' Township', ' City', ' Town']:
    myan_df.Address = myan_df.Address.str.replace(name, '')
m_start_date = myan_df.Confirm_date.min().strftime('%d-%m-%Y')
m_last_date = myan_df.Confirm_date.max().strftime('%d-%m-%Y')
number_of_patients = myan_df.Age.count()
number_of_periods = (covid_df.dateRep.max() - myan_df.Confirm_date.min()).days + 1
average_rate = number_of_patients / number_of_periods
age_min = myan_df.Age.min()
age_max = myan_df.Age.max()
print(f'start_date: {m_start_date}', f'last_date case found : {m_last_date}', sep='\n')
print(f'Total number of patients: {number_of_patients}')
print(f'Total number of periods: {number_of_periods}')
print(f'Average confirm cases per day: {average_rate:.2f}')
print(f'Minimum_age: {age_min}', f'Maximum_age : {age_max}', sep='\n')
myan_df.head() 
start_date: 23-03-2020
last_date case found : 21-06-2020
Total number of patients: 290
Total number of periods: 91
Average confirm cases per day: 3.19
Minimum_age: 1.5
Maximum_age : 87.0
Out[22]:
Age Gender Adult Is_Travel_History Country Hospital Admission_date Confirm_date Condition Address State Coordinate Lat Long Infection_type Case_relative Case_relative_no Is_Q Is_citizen Remark
Case_no
1 36.0 Male Majority Yes USA Tedim General Hospital 2020-03-21 2020-03-23 Recovery Tedim Chin 23.3689, 93.6508 23.3689 93.6508 Foreign No - No Yes National
2 26.0 Male Majority Yes England Wai Bar Gi Hospital 2020-03-23 2020-03-23 Recovery Hmawbi Yangon 16.9205, 96.1565 16.9205 96.1565 Foreign No - Yes Yes National
3 26.0 Male Majority Yes England Wai Bar Gi Hospital 2020-03-23 2020-03-25 Recovery Insein Yangon 16.9205, 96.1565 16.9205 96.1565 Foreign No - No Yes National
4 33.0 Male Majority Yes USA Kandaw Nadi Hospital 2020-03-25 2020-03-27 Recovery Chanmyathazi Mandalay 21.9454, 96.1123 21.9454 96.1123 Foreign No - No Yes Dual citizen
5 69.0 Male Majority Yes Australia, Singapore Wai Bar Gi Hospital 2020-03-25 2020-03-27 Death Mingala Taungnyunt Yangon 16.9205, 96.1565 16.9205 96.1565 Foreign No - No Yes National


In [23]:
cw_df = myan_df.set_index('Confirm_date')
cw_df = cw_df.resample('W').Age.count()
cw_df.name = 'Total'
pop_tdelta = pd.Timedelta('6 days')
pop_min_ldate = cw_df.idxmin()
pop_min_sdate = pop_min_ldate - pop_tdelta
wmin_pop = cw_df.loc[pop_min_ldate]
pop_max_ldate = cw_df.idxmax()
pop_max_sdate = pop_max_ldate - pop_tdelta
wmax_pop = cw_df.loc[pop_max_ldate]

print('Minimum', f'Start_date: {pop_min_sdate.strftime("%d-%m-%Y")}',
      f'End_date{":":>3} {pop_min_ldate.strftime("%d-%m-%Y")}',
      f'Patients{":":>3} {wmin_pop}', sep='\n')
print('Maximum', f'Start_date: {pop_max_sdate.strftime("%d-%m-%Y")}',
      f'End_date{":":>3} {pop_max_ldate.strftime("%d-%m-%Y")}',
      f'Patients{":":>3} {wmax_pop}', sep='\n')
cw_df.index = cw_df.index.strftime('%d-%m-%Y')
fig, ax= plt.subplots(1, 1, figsize=(14, 8))
ax.bar(cw_df.index, cw_df, color='steelblue')
for tup in cw_df.reset_index().itertuples():
    x = tup.Index-0.06 if tup.Total < 10 else tup.Index-0.1
    y = tup.Total
    ax.text(x, (y-3.5 if y > 4 else y-3), f'{tup.Total}', color='white')
ax.set_xlim(-0.6, len(cw_df)-0.4)
ax.set_ylabel('Number of Patients')
ax.set_xlabel('Fig_09')
ax.set_title(f'COVID-19 Weekly total confirm cases for Myanmar from {m_start_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.18)
fig.autofmt_xdate(rotation = 45);
Minimum
Start_date: 11-05-2020
End_date  : 17-05-2020
Patients  : 4
Maximum
Start_date: 13-04-2020
End_date  : 19-04-2020
Patients  : 72


In [24]:
n = 5
count, bin_edges = np.histogram(myan_df.Age, bins=n)
age_idx = count.argsort()
portion = count/count.sum() * 100
print(count, bin_edges, portion, sep='\n')
gender_df = myan_df.Gender.value_counts().reset_index()
gender_df.columns = 'Gender', 'Total'
gender_df['Proportion'] = gender_df.Total / number_of_patients * 100
m_prop = gender_df.query('Gender=="Male"').iloc[0,-1]
f_prop = gender_df.query('Gender=="Female"').iloc[0,-1]
gender_df
[ 23 136  79  41  11]
[ 1.5 18.6 35.7 52.8 69.9 87. ]
[ 7.93103448 46.89655172 27.24137931 14.13793103  3.79310345]
Out[24]:
Gender Total Proportion
0 Male 169 58.275862
1 Female 121 41.724138


In [25]:
adult_df = myan_df.Adult.value_counts().reset_index()
adult_df.columns = 'Adult', 'Total'
adult_df['Proportion'] = adult_df.Total / number_of_patients * 100
maj_prop = adult_df.query("Adult=='Majority'").iloc[0,-1]
min_prop = adult_df.query("Adult=='Minor'").iloc[0,-1]
adult_df
Out[25]:
Adult Total Proportion
0 Majority 273 94.137931
1 Minor 17 5.862069


In [26]:
condition_df = myan_df.Condition.value_counts().reset_index()
condition_df.columns = 'Condition', 'Total'
condition_df.set_index('Condition', inplace=True)
condition_df.loc['Normal', 'Total'] = condition_df.loc['Normal', 'Total'] - 7
condition_df.loc['Recovery', 'Total'] = condition_df.loc['Recovery', 'Total'] + 7
condition_df['Proportion'] = condition_df.Total / number_of_patients * 100
condition_df.reset_index(inplace=True)
_, rq, rec_prop = condition_df.query("Condition=='Recovery'").iloc[0]
_, dq, dth_prop = condition_df.query("Condition=='Death'").iloc[0]
condition_df
Out[26]:
Condition Total Proportion
0 Recovery 200 68.965517
1 Normal 84 28.965517
2 Death 6 2.068966


In [27]:
infection_df = myan_df.Infection_type.value_counts().reset_index()
infection_df.columns = 'Infection_type', 'Total'
infection_df['Proportion'] = infection_df.Total / number_of_patients * 100
loc_prop = infection_df.query("Infection_type=='Local'").iloc[0,-1]
for_prop = infection_df.query("Infection_type=='Foreign'").iloc[0,-1]
infection_df
Out[27]:
Infection_type Total Proportion
0 Local 159 54.827586
1 Foreign 131 45.172414


In [28]:
q_df = myan_df.Is_Q.value_counts().reset_index()
q_df.columns = 'Is_Q', 'Total'
q_df['Proportion'] = q_df.Total / number_of_patients * 100
y_prop = q_df.query("Is_Q=='Yes'").iloc[0,-1]
n_prop = q_df.query("Is_Q=='No'").iloc[0,-1]
q_df
Out[28]:
Is_Q Total Proportion
0 Yes 230 79.310345
1 No 60 20.689655


In [29]:
fig, ((ax1, ax2, ax3), (ax4, ax5, ax6))= plt.subplots(2, 3, figsize=(15, 10))
myan_df.Age.plot.hist(bins=n, xticks=bin_edges, color='steelblue', ax=ax1)
ax1.set_ylabel('Number of patients')
ax1.set_xlim(myan_df.Age.min()-1, myan_df.Age.max()+1)
ax1.yaxis.set_label_coords(-0.13, 0.5)
ax1.set_title('Age of Patients', y=1.035)
xs = ['Gender', 'Adult', 'Condition', 'Infection_type', 'Is_Q']
palettes = {'Gender': ['orange', 'steelblue'], 'Adult': ['orange', 'steelblue'],
            'Condition': ['red', 'green', 'steelblue'], 'Infection_type': ['orange', 'steelblue'],
            'Is_Q': ['orange', 'steelblue']}
axs = [ax2, ax3, ax4, ax5, ax6]
orders = {'Gender': ['Female', 'Male'], 'Adult': ['Minor', 'Majority'],
          'Condition':['Death', 'Recovery', 'Normal'], 'Infection_type': ['Local', 'Foreign'], 
          'Is_Q': ['No', 'Yes']}
titles = {'Gender': 'Gender of Patients', 'Adult': 'Adult of Patients', 'Condition': 'Condition of Patients',
          'Infection_type': 'Infection type of Patients', 'Is_Q': 'Quarantine vs Not'}

for col, ax in zip(xs, axs):
    sns.countplot(col, data=myan_df, palette=palettes[col], ax=ax, order=orders[col])
    ax.set_title(titles[col], y=1.035)
    ax.set(xlabel=None, ylabel=None) if ax!=ax4 else ax.set(xlabel=None, ylabel='Number of patients')
    ax.yaxis.set_label_coords(-0.13, 0.5) if ax==ax4 else None
                          
plt.subplots_adjust(top=0.85, wspace=0.3, hspace=0.4)
fig.text(.5, 0.925, f'\nCOVID-19 Patients of Myanmar are analysed by each attribute from {m_start_date} to {last_date}',
         fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_10', fontdict={'size':'x-large', 'ha':'center'});


In [30]:
tsp_df = myan_df.query('State=="Yangon"').Address.value_counts().reset_index()
tsp_df.columns = 'Township', 'Total'
tsp_df.sort_values(['Total', 'Township'], ignore_index=True, inplace=True)
In [31]:
fig, ax= plt.subplots(1, 1, figsize=(14, 8))
ax.bar(tsp_df.Township, tsp_df.Total, color='steelblue', width=0.9) 
for tup in tsp_df.itertuples():
    x = tup.Index-0.1 if tup.Total < 10 else tup.Index-0.25
    y = tup.Total
    ax.text(x, (y-1.5 if y > 1 else y-0.9), f'{tup.Total}', color='white')
ax.set_xlim(-.8, len(tsp_df)-0.2)
ax.set_ylabel('Number of patients')
ax.set_xlabel('Fig_11')
ax.set_title(f'\nCOVID-19 patients in each area of Yangon from {m_start_date} to {last_date}', y=1.035)
fig.autofmt_xdate(rotation = 45);


In [32]:
rec_df = pd.read_excel('covid\covid_19.xlsx', sheet_name='rel_data', index_col='Case_no')
rec_df.query('Condition=="Recovery"', inplace=True)
rec_df = rec_df.reset_index().drop_duplicates('Case_no').set_index('Case_no')
merge_df = (myan_df[['Confirm_date', 'Age', 'Gender', 'Address', 'State']]
                    .merge(rec_df, left_index=True, right_index=True))
merge_df.drop(['Time', 'Condition'], axis=1, inplace=True)
merge_df['rec_per'] = (merge_df.Date - merge_df.Confirm_date).dt.days
merge_df['age_grp'] = pd.cut(merge_df.Age, range(0, 91, 10))
merge_df['rec_mask'] = merge_df.rec_per.apply(lambda x: 'Over_30' if x > 30 else 'Within_30')
avg_rec_periods = merge_df.rec_per.mean()
tot_recovery = len(merge_df)
min_rec = merge_df.rec_per.min()
max_rec = merge_df.rec_per.max()
print(f'Total_recovery_patients: {tot_recovery:}')
print(f'average_recovery_periods: {avg_rec_periods:.2f}')
print(f'minimum_recovery_periods: {min_rec}')
print(f'maximum_recovery_periods: {max_rec}')
merge_df.head()
Total_recovery_patients: 193
average_recovery_periods: 27.02
minimum_recovery_periods: 11
maximum_recovery_periods: 66
Out[32]:
Confirm_date Age Gender Address State Date rec_per age_grp rec_mask
Case_no
1 2020-03-23 36.0 Male Tedim Chin 2020-04-29 37 (30, 40] Over_30
2 2020-03-23 26.0 Male Hmawbi Yangon 2020-04-29 37 (20, 30] Over_30
3 2020-03-25 26.0 Male Insein Yangon 2020-04-09 15 (20, 30] Within_30
4 2020-03-27 33.0 Male Chanmyathazi Mandalay 2020-04-08 12 (30, 40] Within_30
6 2020-03-28 29.0 Male Insein Yangon 2020-04-28 31 (20, 30] Over_30


In [33]:
summary_gen_rec = merge_df.groupby('Gender')['rec_per'].describe()
summary_gen_rec
Out[33]:
count mean std min 25% 50% 75% max
Gender
Female 86.0 27.744186 13.017803 11.0 16.25 23.5 34.75 66.0
Male 107.0 26.429907 12.787163 12.0 15.00 21.0 35.50 63.0


In [34]:
fig, [(ax1, ax2), (ax3, ax4)]= plt.subplots(2, 2, figsize=(15, 10))
n2=7
for gen, ax in zip(["Male", "Female"], [(ax1, ax3), (ax2, ax4)]):
    temp_df = merge_df.loc[merge_df.Gender==gen]
    sns.boxplot(x= 'rec_per', y='Gender', data=temp_df, color='orange', ax=ax[0])
    _, rec_bin_edges = np.histogram(temp_df.rec_per, n2)
    temp_df.rec_per.plot.hist(bins=n2, color='steelblue', ax=ax[1], xticks=rec_bin_edges)
    ax[0].set_xlabel(None)
    ax[0].set_ylabel(None)
    ax[0].set_title(f'Box plot for {gen}', y=1.045)
    
    ax[1].set_xlabel('Recovery periods')
    ax[1].set_ylabel('Number of recovery patients' if ax[1]==ax3 else None)
    ax[1].set_title(f'Histogram for {gen}', y=1.045)

plt.subplots_adjust(top=0.85, wspace=0.3, hspace=0.3)
fig.text(.5, 0.925, f'\nCOVID-19 recovery patients of Myanmar from {m_start_date} to {last_date}',
         fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_12', fontdict={'size':'x-large', 'ha':'center'});


In [35]:
gen_age_summary = merge_df.groupby(['Gender', 'age_grp']).describe()
gen_age_summary
Out[35]:
Age rec_per
count mean std min 25% 50% 75% max count mean std min 25% 50% 75% max
Gender age_grp
Female (0, 10] 4.0 7.250000 2.500000 4.0 6.250 7.50 8.500 10.0 4.0 20.500000 5.802298 15.0 15.75 20.5 25.25 26.0
(10, 20] 6.0 18.833333 0.983192 18.0 18.000 18.50 19.750 20.0 6.0 30.166667 12.890565 15.0 22.25 27.0 38.50 49.0
(20, 30] 28.0 25.571429 3.072321 21.0 23.000 25.50 28.250 30.0 28.0 25.142857 11.771637 13.0 16.00 22.0 32.50 55.0
(30, 40] 17.0 34.176471 3.107155 31.0 32.000 33.00 35.000 40.0 17.0 32.117647 13.004241 15.0 18.00 32.0 42.00 53.0
(40, 50] 11.0 45.454545 2.978712 41.0 43.000 45.00 48.000 50.0 11.0 30.636364 17.060321 15.0 17.00 23.0 39.00 66.0
(50, 60] 11.0 56.454545 2.978712 51.0 55.000 57.00 58.000 60.0 11.0 26.909091 14.376749 11.0 16.50 27.0 31.00 62.0
(60, 70] 4.0 65.500000 2.081666 63.0 64.500 65.50 66.500 68.0 4.0 31.750000 13.985111 20.0 22.25 28.0 37.50 51.0
(70, 80] 2.0 76.500000 2.121320 75.0 75.750 76.50 77.250 78.0 2.0 19.500000 3.535534 17.0 18.25 19.5 20.75 22.0
(80, 90] 3.0 85.333333 1.527525 84.0 84.500 85.00 86.000 87.0 3.0 24.666667 13.428825 15.0 17.00 19.0 29.50 40.0
Male (0, 10] 2.0 5.750000 6.010408 1.5 3.625 5.75 7.875 10.0 2.0 27.500000 2.121320 26.0 26.75 27.5 28.25 29.0
(10, 20] 8.0 18.375000 1.767767 15.0 17.750 18.50 20.000 20.0 8.0 30.250000 13.687847 15.0 22.50 26.0 39.00 53.0
(20, 30] 25.0 25.120000 2.315167 21.0 24.000 25.00 26.000 30.0 25.0 25.960000 12.252483 13.0 15.00 20.0 32.00 52.0
(30, 40] 32.0 34.843750 2.930478 31.0 32.000 35.00 37.250 40.0 32.0 24.375000 11.451863 12.0 16.00 19.5 31.25 53.0
(40, 50] 23.0 44.869565 2.701924 41.0 43.000 44.00 46.500 50.0 23.0 25.695652 14.570939 14.0 15.00 20.0 35.00 63.0
(50, 60] 9.0 55.222222 3.113590 52.0 53.000 54.00 57.000 60.0 9.0 31.555556 16.164089 14.0 18.00 28.0 40.00 61.0
(60, 70] 6.0 64.166667 1.834848 62.0 63.000 64.00 65.000 67.0 6.0 32.833333 10.666146 17.0 25.50 36.5 40.75 43.0
(70, 80] 2.0 78.500000 2.121320 77.0 77.750 78.50 79.250 80.0 2.0 15.000000 1.414214 14.0 14.50 15.0 15.50 16.0


In [36]:
fig, ax= plt.subplots(1, 1, figsize=(14, 8))
sns.boxplot(x='age_grp', y='rec_per', hue='Gender', data=merge_df, palette=['steelblue', 'orange'], ax=ax)
ax.set_xlabel('Age groups\nFig_13')
ax.set_ylabel('Recovery periods')
ax.set_title(f'Recovery patients are analysed by Age groups and Gender', y=1.045)
ax.xaxis.set_label_coords(0.5, -0.07);


In [37]:
rec_gen_df = (merge_df.rec_mask.value_counts()/tot_recovery*100)
within_30 = rec_gen_df.loc['Within_30']
over_30 = rec_gen_df.loc['Over_30']
within_30, over_30
Out[37]:
(65.28497409326425, 34.715025906735754)


In [38]:
over30_df = merge_df.query('rec_per>30')
overtemp = over30_df.State.value_counts(ascending=True)
In [39]:
data = overtemp.to_dict()
fig = plt.figure(1,
    FigureClass=Waffle,
    figsize=(8.5,7.5),
    rows=5, 
    colors=("midnightblue", "brown", "gold", 'darkgreen','purple', 'orange', 'steelblue'), #DCB732
    values=data,        
    title={'label': '\nRecovery patients over 30 days by State and by Gender', 'x':0.87,'y':1.15, 'fontsize':20},
    labels=[f'{k} ({v})' for k,v in data.items()],
    legend={'loc': 'lower center', 'bbox_to_anchor': (0.5, -0.5),'ncol': 3, 'fontsize':13},
    interval_ratio_y=0.3,
    icons='child',
    icon_size=35.0, 
    icon_legend=True,
    starting_location='NW',
)
fig.set_facecolor('#EEEEEE')
f = plt.gcf()
f.update({'tight_layout':False})
ax = f.add_axes([1.065,0.25,0.3,0.42])
sns.countplot(x='Gender', data=over30_df, ax=ax, palette=['orange', 'steelblue'], order=['Female', 'Male'])
ax.yaxis.tick_right()
ax.yaxis.set_label_position('right')
ax.yaxis.set_label_coords(1.2, 0.5)
ax.set(xlabel=None, ylabel='Number of recovery patients\n')
fig.text(0.75, 0.08, 'Fig_14\n', fontdict={'size':'xx-large', 'ha':'center'});


In [40]:
st_name, st_value = overtemp.reset_index().iloc[-1]
print(st_name,st_value)
gender_over30_df = over30_df.Gender.value_counts()
male,female = gender_over30_df
print(male,female)
gender_over30_df
Yangon 55
37 30
Out[40]:
Male      37
Female    30
Name: Gender, dtype: int64


In [41]:
state_df = myan_df.State.value_counts().reset_index()
state_df.columns = 'State', 'Total'
state_min = state_df.Total.min()
state_max = state_df.Total.max()
state_df['Proportion'] = state_df.Total / number_of_patients * 100
state_df['norm'] = np.log(state_df.Total)
st_tot, st_prop = state_df.Total.iloc[0], state_df.Proportion.iloc[0]
state_df
Out[41]:
State Total Proportion norm
0 Yangon 193 66.551724 5.262690
1 Rakhine 16 5.517241 2.772589
2 Chin 10 3.448276 2.302585
3 Mandalay 9 3.103448 2.197225
4 Sagaing 9 3.103448 2.197225
5 Bago (West) 9 3.103448 2.197225
6 Tanintharyi 8 2.758621 2.079442
7 Nay Pyi Taw 7 2.413793 1.945910
8 Mon 6 2.068966 1.791759
9 Shan (South) 5 1.724138 1.609438
10 Shan (East) 3 1.034483 1.098612
11 Shan (North) 3 1.034483 1.098612
12 Ayeyarwady 3 1.034483 1.098612
13 Magway 3 1.034483 1.098612
14 Kayin 3 1.034483 1.098612
15 Kachin 2 0.689655 0.693147
16 Bago (East) 1 0.344828 0.000000


In [42]:
myan_map = folium.Map(location=[19.9940,96.0864],
                      tiles='StamenToner',
                      zoom_start=5)
folium.Choropleth(
    geo_data='myanmar(original).json',
    data=state_df,
    columns=['State', 'norm'],
    bins=4,
    key_on='feature.properties.ST',
    nan_fill_color='white',
    line_color='black',
    fill_color='Paired', 
    fill_opacity=1, 
    line_opacity=1,
    legend_name ='COVID-19',
    name="COVID-19 patients of each state",
    overlay=True,
    highlight = True).add_to(myan_map)
folium.LayerControl().add_to(myan_map)
myan_map.save('Myanmar_covid-19_map.html')
myan_map
Out[42]:


In [43]:
myan2_map = folium.Map([19.9940,96.0864],zoom_start=5)
cluster = plugins.MarkerCluster().add_to(myan2_map)
host_lst = ['Naypyitaw General Hospital', 'Kengtung General Hospital', 'Magway Regional Hospital',
            'Yangon General Hospital', 'Sagaing General Hospital', 'Pathein General Hospital', 'Thandwe District Hospital',
            'Hpa-An General Hospital']
host_lst2 = ['Mawlamyine General Hospital', 'Myitkyina General Hospital', 'Maungdaw General Hospital',
             'Toungup Township Hospital']
host_lst3 = ['South Okkalapa Specialist Hospital', 'Defence Services Liver Hospital' ]

for t in myan_df.reset_index().itertuples():
    if t.Condition != 'Normal':
        continue
    html=f'''<div style="font-size:9pt; background-color:steelblue; color:white;">
                <div style="padding:3.5px 0; line-height:1.4;">
                    <b style="padding:0 7px;">Case_no
                        <span  style="padding: 0 1px 0 30.75px;">:</span>
                    </b>{t.Case_no:02d}<br>
                    <b style="padding:0 7px;">Age
                        <span  style="padding: 0 1px 0 54.35px;">:</span>
                    </b>{t.Age}<br>
                    <b style="padding:0 7px;">Gender
                        <span  style="padding: 0 1px 0 36px;">:</span>
                    </b>{t.Gender}<br>
                    <b style="padding:0 7px;">Condition
                        <span  style="padding: 0 1px 0 23.5px;">:</span>
                    </b>{t.Condition}<br>
                    <b style="padding:0 7px;">Address
                        <span  style="padding: 0 1px 0 33px;">:</span>
                    </b>{t.Address}<br>
                    <b style="padding:0 7px;">State
                        <span  style="padding: 0 1px 0 49px;">:</span>
                    </b>{t.State}<br>
                    <b style="padding:0 7px;">Hospital
                        <span  style="padding: 0 1px 0 32px;">:</span>
                    </b>{t.Hospital}<br>
                </div>
             </div>
          '''
    width = (304 if t.Hospital in host_lst3 else 282 if t.Hospital in host_lst2
                 else 271 if t.Hospital in host_lst else 251)
    ifram=folium.IFrame(html, width=width, height=135)
    popup=folium.Popup(ifram)
    icon=folium.Icon(color='cadetblue')
    folium.Marker([t.Lat, t.Long], popup=popup, icon=icon).add_to(cluster)
myan2_map
Out[43]:


23-03-2020 မှ 21-06-2020 အထိမြန်မာနိင်ငံ၌ COVID-19 ရောဂါကူးစက်ခံရသောလူအရေအတွက်မှာ 290 ယောက်ဖြစ်ပြီး၊ 6 ဦးသေဆုံး၍ ရောဂါကင်းစင်သွားသူ 200 ဦးရှိပါသည်။ မြန်မာနိင်ငံ၌ COVID-19 ရောဂါကူးစက်ခံရသူများတွင် အသက် 1 နှစ် 6 လသည်အသက်အငယ်ဆုံးဖြစ်ပြီး အသက်အကြီးဆုံးမှာ 87 နှစ်ဖြစ်ကြောင်းတွေ့ရှိရသည်။တစ်နေ့လျှင်ပျမ်းမျှ 3.19 ယောက်ရောဂါကူးစက်ခံနေရပါသည်။ မြန်မာနိင်ငံ၌ COVID-19 ရောဂါအတည်ပြုလူနာတွေ့ရှိရမှု့အနည်းဆုံးမှာ 11-05-2020 ရက်မှ 17-05-2020 အကြားဖြစ်ပြီး 4 ယောက်ဖြစ်ပါသည်။ အတည်ပြုလူနာတွေ့ရှိရမှု့အများဆုံးမှာ 13-04-2020 ရက်မှ 19-04-2020 အကြားဖြစ်ပြီးအရေအတွက်အားဖြင့် 72 ဖြစ်ကြောင်းတွေ့ရှိရသည်။

ရောဂါကူးစက်ခံရသူအရေအတွက်အများဆုံးအသက်အပိုင်းအခြားမှာ 18.6 မှ 35.7 နှစ်အကြားဖြစ်ပြီး 136 (46.90%) ယောက်ဖြစ်ပါသည်။ ဒုတိယအများဆုံးမှာ 35.7 မှ 52.8 နှစ်အကြားဖြစ်ပြီး 79 (27.24%) ယောက်ဖြစ်ပါသည်။ ရောဂါကူးစက်ခံရမှု့၏ 58.28% မှာအမျိုးသားများဖြစ်ပြီး အမျိုးသမီးများ၏ရောဂါကူးစက်ခံရနှုန်းမှာ 41.72% ဖြစ်ပါသည်။

အသက် 18 နှစ်မှအထက်ရောဂါကူးစက်ခံရသောနှုန်းမှာ 94.14% ဖြစ်ပြီး အသက် 18 နှစ်အောက်ရောဂါကူးစက်ခံရသောနှုန်းမှာ 5.86% ဖြစ်ပါသည်။ မြန်မာနိင်ငံ၌ COVID-19 ရောဂါကြောင့်သေဆုံးနှုန်းမှာ 2.07% ဖြစ်ပြီး ရောဂါပျောက်ကင်းမှု့နှုန်းမှာ 68.97% ကြောင်းတွေ့ရှိရသည်။ ရောဂါကူးစက်ခံရသူများ၏ 45.17% သည်ပြည်ပမှကူးစက်ခံရသူများဖြစ်ပြီး ပြည်တွင်းကူးစက်ခံရသောနှုန်းမှာ 54.83% ဖြစ်ကြောင်းလေ့လာတွေ့ရှိရပါသည်။ ရောဂါကူးစက်ခံရသူများ၏ 79.31% သည်အသွားအလာကန့်သတ်ထားသူများဖြစ်ပြီး 20.69% သည်အသွားအလာကန့်သတ်ထားခြင်းမရှိသူများဖြစ်ကြာင်းတွေ့ရှိရသည်။

မြန်မာနိင်ငံ၌ရောဂါကူးစက်ခံရသူအများဆုံးရှိသောဒေသမှာ ရန်ကုန်တိုင်းဒေသကြီးဖြစ်ပြီး 193 (66.55%) ယောက်ဖြစ်ပါသည်။ ရန်ကုန်တိုင်းဒေသကြီးတွင် အင်းစိန်မြို့နယ်သည် ရောဂါဖြစ်ပွါးမှု့အများဆုံးဖြစ်ပြီး အရေအတွက်အားဖြင့် 47 ယောက်ဖြစ်ပါသည်။ မြန်မာနိင်ငံ၌ COVID-19 ရောဂါမဖြစ်ပွါးသောနေရာအဖြစ် ကယားပြည်နယ်သာကျန်ရှိတော့ကြောင်းကိုတွေ့ရှိရပါသည်။

မြန်မာနိင်ငံ၌ COVID-19 ရောဂါခံစားရသောလူနာများ ရောဂါကင်းစင်ဖို့ရန်ပျမ်းမျှကြာချိန်သည် 27.02 ရက်ဖြစ်ပါသည်။ ရောဂါကင်းစင်ရန်အနိမ့်ဆုံးကြာချိန်မှာ 11 ရက်ဖြစ်ပြီး အမြင့်ဆုံးကြာချိန်မှာ 66 ရက်ဖြစ်ကြောင်းတွေ့ရှိရပါသည်။ COVID-19 ရောဂါခံစားရသော အမျိုးသမီးများ၏ ရောဂါကင်းစင်ရန်အနိမ့်ဆုံးကြာချိန်သည် 11 ရက်ဖြစ်ပြီး 66 ရက်သည်အမြင့်ဆုံးကြာချိန်ဖြစ်ကြောင်းတွေ့ရှိပါသည်။ အမျိုးသားများ၏ COVID-19 ရောဂါကင်းစင်ရန်အနိမ့်ဆုံးကြာချိန်မှာ 12 ရက်ဖြစ်ပြီး အမြင့်ဆုံးကြာချိန်မှာ 63 ရက်ဖြစ်ပါသည်။ အသက်အုပ်စု (0, 10] တွင်အမျိုးသမီးများသည် အမျိုးသားများထက် ရောဂါလျင်မြန်စွာပျောက်ကင်းကြောင်းတွေ့ရှိရပြီး (70, 80] အုပ်စုတွင် အမျိုးသားများသည် အမျိုးသမီးများထက် ရောဂါပျောက်ကင်းမှု့မြန်ဆန်ကြောင်းတွေ့ရှိရသည်။ (40, 50] အသက်အုပ်စု၏ COVID-19 ရောဂါကင်းစင်ရန်အနိမ့်ဆုံးကြာချိန်သည် 14 ရက်ဖြစ်ပြီး အမြင့်ဆုံးကြာချိန်မှာ 66 ရက်ကြောင်းတွေ့ရှိရသည်။ (40, 50] အသက်အုပ်စုသည်ရောဂါကင်းစင်ရန် ကြာချိန်အတိုင်းအတာအကျယ်ပြန့်ဆုံး အုပ်စုဖြစ်ကြောင်း တွေ့ရှိရသည်။

COVID-19 ရောဂါပျောက်ကင်းသူစုစုပေါင်း၏ 65.28% သည်ရက်သုံးဆယ်အတွင်ရောဂါပျောက်ကင်းပြီး 34.72% သည်ရက်သုံးဆယ်ကျော်မှ ရောဂါပျောက်ကင်းကြောင်း တွေ့ရှိရပါသည်။ ရက်သုံးဆယ်ကျော်မှ COVID-19 ရောဂါပျောက်ကင်းသူစုစုပေါင်းမှာ 67 ယောက်ဖြစ်ပြီး အမျိုးသား 37 ယောက်၊ အမျိုးသမီး 30 ယောက်ဖြစ်ကြောင်းတွေ့ရှိရသည်။ ရက်သုံးဆယ်ကျော်မှ COVID-19 ရောဂါပျောက်ကင်းသူအများစုသည် ရန်ကုန်တိုင်းဒေသကြီးမှဖြစ်ပြီး အရေအတွက်အားဖြင့် 55 ယောက်ဖြစ်ပါသည်။




မှတ်ချက်

  1. MOHS မှထုတ်ပြန်ချက်တွင် မည်သူ့ထံမှတဆင့်ရောဂါကူးစက်ခံရသည်ကို လူနာအမှတ်စဥ်ဖြင့်သော်လည်းကောင်း၊ လူနာအမှတ်စဥ်မပါ၍သော်လည်းကောင်းဖော်ပြလေ့ရှိပါသည်။ ထို့ကြောင့် တဆင့်ရောဂါကူးစက်ခံရမှု့ကိုဖော်ပြသောပုံသည် ရရှိသောသတင်းအချက်အလက်အပေါ်အခြေခံ၍ရေးဆွဲထားသောကြောင့် ပြည့်စုံသည်ဟုမဆိုနိင်ပါ။
  1. MOHS မှထုတ်ပြန်ချက်တွင် ရောဂါကင်းစင်သွားသူ 200 ဦးရှိသည်ဟုဖော်ပြသော်လည်း လူနာအမှတ်စဥ်ဖြင့်ဖော်ပြသည့်အရေအတွက်မှာ 193 ယောက်သာရှိပါသည်။ ထိုလူနာအမှတ်စဥ်များကိုဇယားတွင်ဖော်ပြထားပါသည်။
Case_no Case_no Case_no Case_no Case_no Case_no Case_no Case_no Case_no Case_no Case_no Case_no Case_no
1 2 3 4 6 7 8 9 11 12 14 15 18
19 20 21 22 23 24 25 26 27 28 29 30 31
32 33 34 35 36 38 40 41 42 43 44 45 46
47 48 49 50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69 70 71 72
73 74 75 77 78 79 81 82 83 84 85 87 88
89 90 91 92 93 95 96 97 98 99 100 101 102
103 104 105 106 107 108 109 112 113 114 115 116 117
118 119 120 121 122 123 124 125 126 127 128 129 131
132 133 134 135 136 137 138 139 140 141 142 143 144
145 146 147 149 150 151 152 153 154 155 156 157 158
159 160 162 163 164 165 166 167 168 170 171 172 173
174 175 176 177 178 179 180 181 183 184 185 186 188
189 190 191 192 193 194 195 196 197 198 199 202 207
209 213 218 223 225 227 228 229 231 233 243


  1. ECDC မှ COVID-19 နှင့်ပတ်သက်သောသတင်းအချက်အလက်အား မြန်မာစံတော်ချိန်ညနေ 06:00 ဝန်ကျင်၌ရယူခဲ့ပါသည်။
  1. 22-06-2020 12:40:00 AM အထိတစ်ကမ္ဘာလုံး၌ ရောဂါကူးစက်ခံရသူအရေအတွက်မှာ 8,994,429 ယောက်ဖြစ်ပြီး သေဆုံးသူအရေအတွက်မှာ 468,514 ယောက်ဖြစ်ပါသည်။

Author: MIN KYAW ZAW
E-mail: minkyawzraw@gmail.com
LinkedIn: www.linkedin.com/in/minkyawzaw